<?php

class Admin_RelatorioController extends Zend_Controller_Action
{

    public function init()
    {
        $this->_helper->layout
             ->setLayoutPath(APPLICATION_PATH.'/modules/admin/layouts/scripts')
             ->setLayout('admin');
    }


    // ACTION: apenas redirecionar para uma action principal
    public function indexAction()
    {
        $this->_helper->viewRenderer->setNoRender(true);
    }


    //ACTION: Mostra os resultados da consulta
    public function consultarResultadoAction()
    {
        // Instanciando models importantes
        $modCandidato = new Admin_Model_Candidatos();
        $modInscricao = new Admin_Model_Inscricoes();
        $formulario = new Admin_Form_RelatorioConsultarResultado();

        $post       = $this->getRequest()->getPost(); // Validar no formulário, pois precisa de um array
        $matricula  = Zend_Filter::filterStatic($this->_getParam('matricula'), 'Alnum');
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {

                // Tratando informações para enviar para a view
                $infoCandidato  = $modCandidato->infoCandidatoPorMatricula($matricula);
                $infoinscricoes = $modInscricao->listarInscricoes(array('matricula' => $matricula), 1);

                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-consultar-resultado.phtml', array('infoCandidato', $infoCandidato,
                                                                                                     'infoInscricoes', $infoinscricoes));
            }
        }

        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }

    
    //ACTION: 
    public function consultarInscricaoAction()
    {

    }

    
    //ACTION: Lista o número de inscrições por dia
    public function resumoConsolidadoAction()
    {
        $modInscricao   = new Admin_Model_Inscricoes();
        $conteudo = $modInscricao->listarInscricoesPorDia();
        
        $this->view->resultContent  = $conteudo;
    }
    
    

    //ACTION: Portadores de Necessidades Especiais
    public function pneAction()
    {
        // Instanciando...
        $formulario     = new Admin_Form_RelatorioPne();
        
        // Recuperando informações...
        $post       = $this->getRequest()->getPost();
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data   = array();
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-pne.phtml', $data);
             }
        }

        // Enviando informações para a view...
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }


    //ACTION: Servidores que Declararam ser Portadores de Necessidades Especiais
    public function declarantesPneAction()
    {
        // Instanciando...
        $formulario     = new Admin_Form_RelatorioDeclarantesPne();
        
        // Recuperando informações...
        $post       = $this->getRequest()->getPost();
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data   = array();
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-declarantes-pne.phtml', $data);
             }
        }

        // Enviando informações para a view...
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }

    
    //ACTION: 
    public function concursoInternoAction() 
    {
        // Instanciando...
        $formulario     = new Admin_Form_RelatorioConcursoInterno();
        
        // Recuperando informações...
        $post       = $this->getRequest()->getPost();
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data   = array();
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-concurso-interno.phtml', $data);
             }
        }

        // Enviando informações para a view...
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }
    
    //ACTION: 
    public function concursoExternoAction() 
    {
        // Instanciando...
        $formulario     = new Admin_Form_RelatorioConcursoExterno();
        
        // Recuperando informações...
        $post       = $this->getRequest()->getPost();
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data   = array();
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-concurso-externo.phtml', $data);
             }
        }

        // Enviando informações para a view...
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }
    

    //ACTION: 
    public function concursoExternoDisciplinaAction()
    {
        // Instanciando...
        $formulario     = new Admin_Form_RelatorioConcursoExternoDisciplina();
        
        // Recuperando informações...
        $post       = $this->getRequest()->getPost();
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data   = array();
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-concurso-externo-disciplina.phtml', $data);
             }
        }

        // Enviando informações para a view...
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }

    
    //ACTION: 
    public function classificacaoGeralDisciplinaAction() 
    {
        // Instanciando...
        $formulario     = new Admin_Form_RelatorioClassificacaoGeralDisciplina();
        
        // Recuperando informações...
        $post       = $this->getRequest()->getPost();
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data   = array();
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-classificacao-geral-disciplina.phtml', $data);
             }
        }

        // Enviando informações para a view...
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }
    
    
    //ACTION: 
    public function classificacaoGeralServidorAction() 
    {
        // Instanciando...
        $formulario     = new Admin_Form_RelatorioClassificacaoGeralPorServidor();
        
        // Recuperando informações...
        $post       = $this->getRequest()->getPost();
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $data   = array();
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-classificacao-geral-servidor.phtml', $data);
             }
        }

        // Enviando informações para a view...
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }
    
    
    //ACTION: mostra inscrições de candidatos de acordo com a lotação do mesmo.
    public function inscricoesValidacoesAction()
    {
        // Instanciando...
        $modInscricoes  = new Admin_Model_Inscricoes();
        $formulario     = new Admin_Form_RelatorioInscricoesValidacoes();
        
        // Recuperando informações...
        $post       = $this->getRequest()->getPost();
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $dre    = strstr($post['regEscolha'], '_', true); 
                $data   = $modInscricoes->contarInscricoes($dre);
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-inscricoes-validacoes.phtml', $data);
             }
        }

        // Enviando informações para a view...
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }
    

    //ACTION: mostra inscrições de candidatos de acordo com a lotação do mesmo.
    public function inscricoesPorLotacaoAction()
    {
        // Instanciando...
        $modInscricoes  = new Admin_Model_Inscricoes();
        $formulario     = new Admin_Form_RelatorioInscricoesPorLotacao();
        $modInsc        = new Remanejamento_Model_Inscricao();
        
        // Recuperando informações...
        $post       = $this->getRequest()->getPost();
        $page       = $this->_getParam('pagina', 0);
        $conteudo   = ''; // Se houver html será mostrado na view...

        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $lstTpRemanejamento      = $modInsc->verificarTpRemanejamento();        
                $data['inscricoes']      = $modInscricoes->listarInscricoes(array('cordenacaoEnsino' => $post['regEscolha']), $page);
                $data['tpRemanejamento'] = $lstTpRemanejamento;
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('relatorio/_result-inscricoes-por-lotacao.phtml', $data);
             }
        }

        // Enviando informações para a view...
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }
}